# Домашнее задание к лекции «Командная работа в Git & GitHub»

_Примерное время выполнения: 30 минут_

Все задачи обязательны к выполнению. Пожалуйста, присылайте на проверку все задачи сразу.
**Пожалуйста, не прикладывайте никакие файлы, в том числе на Google Диск.**

Любые вопросы по решению задач задавайте в чате учебной группы.

_______

## Цели задания:

Научиться работать над командным проектом через Git & GitHub, а именно: 

1. Настраивать игнорирование части файлов при публикации проекта
2. Откатывать изменения, внесенные другим участником 
3. Отправлять изменения в проект и решать конфликты во время слияния

Данная практика поможет вам прокачать базовые навыки командной работы в Git & GitHub. Это профессиональный стандарт в сфере IT, ведь большая часть разработки ведется именно в группе. 

## Чек-лист готовности к выполнению домашнему заданию:

- [ ] Установите Git на своем локальном компьютере
- [ ] Создайте профиль на GitHub
- [ ] Настройте SSH-ключ 
- [ ] Просмотрите видео к занятию «Командная работа в Git & GitHub»
- [ ] Изучите презентацию к занятию «Командная работа в Git & GitHub»

----------------------

## Инструкция к заданию

### Задача №1: Импорт существующего проекта

Вам предоставили исходники лендинга, но в виде zip-архива. Вам нужно перенести их в систему контроля версий Git и опубликовать на GitHub. Обратите внимание, что в архиве есть мусорные файлы и системные файлы (папка `tmp`, файлы, заканчивающиеся суффиксами `_old`, `_backup`, `Thumbs.db` и `.DS_Store`) и их нужно проигнорировать, так как в противном случае получится, что вы храните ненужные файлы.

1. Скачайте [по ссылке](https://github.com/netology-code/git-2-homeworks/raw/main/team/src/landing.zip) архив с проектом.
2. Распакуйте из него папку `Site For Import`.
_В архиве также лежит скрытая папка `__MACOSX`, она не нужна для работы. Удалите эту папку с вашего компьютера._
3. Создайте на базе папки `Site For Import` Git-репозиторий.
4. Проигнорируйте подкаталог `tmp` и файлы, заканчивающиеся суффиксами `_old`, `_backup`. Любые символы можно заменить символом звёздочка `*`.
5. Добейтесь чтобы также были проигнорированы файлы `Thumbs.db` и `.DS_Store`.
6. При помощи команды `git status` убедитесь, что Git не видит ненужные файлы.
7. Добавьте в индекс все файлы проекта, включая `.gitignore`. Создайте коммит изменений.
8. Создайте отдельный репозиторий на GitHub.
9. Свяжите ваш локальный репозиторий с только что созданным удалённым репозиторием. Используйте в качестве кодового слова для связи с удалённым репозиторием `origin`.
10. Отправьте сделанные вами изменения на GitHub.

**В качестве результата пришлите проверяющему ссылку на ваш репозиторий на GitHub.**

### Задача №2: Откат изменений

Один из ваших коллег во время работы над сайтом допустил ряд ошибок и залил всё вместе с ошибками в репозиторий на GitHub. Вам нужно отменить его последний коммит и исправить ситуацию.

1. Склонируйте Git-репозиторий [по ссылке](https://github.com/netology-code/git-2-homeworks-revert.git).
2. Отмените один последний коммит в проекте при помощи команды `git revert`.
3. Создайте отдельный репозиторий на GitHub.
4. Свяжите ваш локальный репозиторий с только что созданным удалённым репозиторием. При связывании используйте кодовое слово `target` поскольку стандартное кодовое слово `origin` уже занято.
5. Отправьте сделанные вами изменения на GitHub.

**В качестве результата пришлите проверяющему ссылку на ваш репозиторий на GitHub.**

### Задача №3: Конфликт при push'е

Вы с коллегой вдвоём работаете над одним проектом. Вы доделали свою часть работы и пытаетесь запушить изменения в удалённый репозиторий. Но оказалось, что коллега изменил тот же файл раньше вас и уже отправил свой коммит. Вам нужно _забрать_ изменения из удалённого репозитория, разрешить конфликт и всё же отправить свою часть работы на GitHub.

1. Сделайте форк репозитория [по ссылке](https://github.com/netology-code/git-2-homeworks-fork).
2. Скачайте [архив изменений](https://github.com/netology-code/git-2-homeworks/raw/main/team/src/git-2-homeworks-fork.zip).
3. Свяжите локальный репозиторий из архива с форком репозитория из п.1.
4. Выполните команду `git push -u origin main`, удостоверьтесь, что конфликт произошёл.
5. Заберите актуальную версию данных из удалённого репозитория при помощи команды `git pull origin main`.
6. Разрешите появившийся конфликт и отправьте сделанные вами изменения на GitHub.

**В качестве результата пришлите проверяющему ссылку на ваш репозиторий на GitHub.**
